//定时音乐相关js
/**
 * 获得方案列表
 */
function initSolutionList() {
    myajax({
        url: "/solution/list",
        data: {},
        success: function (data) {
            var html = "";
            for (var i = 0; i < data.length; i++) {

                if (data[i].isaction == 1) {
                    $("#solution_default").html(data[i].solutionname);
                    html += "<option value='" + data[i].solutionname + "' selected>" + data[i].solutionname + "</option>";
                } else {
                    html += "<option value='" + data[i].solutionname + "'>" + data[i].solutionname + "</option>";
                }
            }
            $("#solution_select").html(html);

            initTimeTask();

            renderForm();
        }
    });
}

/**
 * 初始化定时任务列表
 */
var tasks;

function initTimeTask() {

    //获得方案
    var solution = $("#solution_select").val();

    //申请任务列表
    getTaskList({
        data: {"taskt": 1, "solution": solution},
        init: function(taskData){
            //返回实时音乐列表行
            return timeMusicHtml(taskData);
        }
    });
}

/**
 * 显示定时音乐的列表
 */
function timeMusicHtml(data){
    var html = "";
    html += "<tr id='tr_task_" + data.id + "' taskid='" + data.id + "' taskidstr='" + data.taskid + "' onclick='timeTaskTr(" + data.id + ");'>";
    html += "<td>" + data.taskname + "</td>";
    html += "<td id='task_status_" + data.taskid + "'>";
    if(data.status == 0){
        html += "任务空闲";
    } else if(data.status == 1){
        html += "执行中";
    } else if(data.status == 2){
        html += "任务空闲";
    } else if(data.status == 3){
        html += "暂停";
    }
    html += "</td>";
    html += "<td>";
    html += "<span id='task_startdate_" + data.taskid + "'>" + data.startDate + "</span> " + data.startTime;
    html += "(";
    if(data.playOrder == 1){
        html += "每天任务";
    } else  if(data.playOrder == 2){
        html += "每周任务";
    } else  if(data.playOrder == 3){
        html += "一次任务";
    }
    html += ")";

    html += "</td>";
    html += "<td id='task_duration_" + data.taskid + "'>00:00</td>";//单个曲目的持续时间
    html += "<td>" + data.stopDate + "</td>";

    if(data.looptype == 0){
        html += "<td>随机播放</td>";
    } else if(data.looptype == 1){
        html += "<td>循环播放</td>";
    } else if(data.looptype == 2){
        html += "<td>顺序播放</td>";
    }

    html += "<td>" + data.volume + "</td>";
    html += "<td id='task_mp3_" + data.taskid + "'></td>";
    html += "<td><span id='task_nowduration_" + data.taskid + "'>00:00</span>/<span id='task_allduration_" + data.taskid + "'>" + s2str(data.duration) + "</span></td>";//总进度
    html += "</tr>";
    return html;
}

/**
 * 定时任务 - 点击行
 */
function timeTaskTr(taskid) {
    trtask({
        taskid: taskid,
        callback: function(data){
            var mp3s = data.mp3;
            if (mp3s) {
                var html = "";
                for (var i = 0; i < mp3s.length; i++) {
                    html += "<tr><td>" + mp3s[i] + "</td></tr>";
                }
                $("#mp3_list").html(html);
            }

            var clients = data.clients;
            if (clients) {
                var html = "";
                for (var i = 0; i < clients.length; i++) {
                    html += "<tr><td>" + clients[i].terminalname + "</td></tr>";
                }
                $("#clients_list").html(html);
            }
        }
    });
}

/**
 * 提交定时音乐任务
 */
function submit_task() {
    //获得任务名称
    taskname = $("#taskname").val();
    //获得循环类型
    var loopType = $("#loopType").val();
    //获得任务类型
    playOrder = $("#playOrder").val();
    //获得开始日期
    startDate = $("#startDate").val();

    //获得开始时间
    startTime = $("#startTime").val();

    //获得结束时间
    stopDate = $("#endTime").val();

    //获得持续时间
    duration = $("#durtime").val() ? $("#durtime").val() : 0;

    //是否开启持续时间
    isduration = $("#checkbox_dur").is(':checked') ? 1 : 0;

    //获得提前开始
    var start = $("#start").val() ? $("#start").val() : 0;

    //获得音量
    volume = $("#volume").val();

    //获得星期
    weekMask = 0;
    $("input[name='week']:checked").each(function () {
        weekMask += parseInt($(this).val());
    });

    //
    solution = $("#solution_select").val();

    //获得被选择的终端
    var ztreeObj = getZtree();
    var znodes = ztreeObj.getCheckedNodes(true);
    terminal = [];
    for (var i = 0; i < znodes.length; i++) {
        if (znodes[i].isClient == 1) {
            //如果是终端
            terminal.push(znodes[i].userid);
        }
    }

    //表单验证
    if(!check_Form()){
        return;
    }

    //ajax提交任务
    myajax({
        type: "POST",
        url: "/task/insert",
        data: {
            "mp3": JSON.stringify(files),
            "users": JSON.stringify(terminal),
            "taskname": taskname,
            "looptype": loopType,
            "taskt": 1,
            "playOrder": playOrder,
            "startDate": startDate,
            "startTime": startTime,
            "stopDate": stopDate,
            "duration": duration,
            "isduration": isduration,
            "startinadvance": start,
            "volume": volume,
            "weekMask": weekMask,
            "solution": solution
        },
        success: function (data) {
            //发送websocket
            console.log(data);

            var html = "";
            html = timeMusicHtml(data);
            $("#task_list").append(html);

            //关闭弹出框
            layer.closeAll();
        }
    });
}


//修改
function update_task(tid){
    //获得任务名称
    var taskname = $("#taskname").val();
    //获得循环类型
    var loopType = $("#loopType").val();
    //获得任务类型
    var playOrder = $("#playOrder").val();
    //获得开始日期
    var startDate = $("#startDate").val();
    //获得开始时间
    var startTime = $("#startTime").val();
    //获得结束时间
    var stopDate = $("#endTime").val();
    //获得持续时间
    var duration = $("#durtime").val() ? $("#durtime").val() : 0;
    //是否开启持续时间
    var isduration = $("#checkbox_dur").is(':checked') ? 1 : 0;

    //获得提前开始
    var start = $("#start").val() ? $("#start").val() : 0;;

    //获得音量
    var volume = $("#volume").val();
    //获得星期
    var weekMask = 0;
    $("input[name='week']:checked").each(function () {
        weekMask += parseInt($(this).val());
    });

    //
    var solution = $("#solution_select").val();

    //获得被选择的终端
    var ztreeObj = getZtree();
    var znodes = ztreeObj.getCheckedNodes(true);
    var terminal = [];
    for (var i = 0; i < znodes.length; i++) {
        if (znodes[i].isClient == 1) {
            //如果是终端
            terminal.push(znodes[i].userid);
        }
    }

    //ajax提交任务
    myajax({
        type: "POST",
        url: '/task/update',
        data: {
            "mp3": JSON.stringify(files),
            "users": JSON.stringify(terminal),
            "taskname": taskname,
            "looptype": loopType,
            "taskt": 1,
            "playOrder": playOrder,
            "startDate": startDate,
            "startTime": startTime,
            "stopDate": stopDate,
            "duration": duration,
            "isduration": isduration,
            "startinadvance": start,
            "volume": volume,
            "weekMask": weekMask,
            "solution": solution,
            "taskid": tid
        },
        success: function (data) {
            //移除原来的节点
            $("#tr_task_" + data.id).remove();

            var html = timeMusicHtml(data);
            $("#task_list").append(html);

            //关闭弹出框
            layer.closeAll();
        }
    });
}

//---------------------------------方案相关--------------------------------------------
//选择方案
function selectSolution() {
    //获得任务列表
    initTimeTask();
}

/**
 * 提交方案
 */
function submit_solution(){
    //获得方案名称
    var solutionName = $("#solutionname").val();

    //提交方案名称
    myajax({
        url: "/solution/insert",
        data: {"solutionname": solutionName},
        success: function(data){
            if(data > 0){
                //
                $("#solution_select").append("<option value='" + solutionName + "'>" + solutionName + "</option>");
                renderForm();
            } else if(data == -1){
                alert("方案名已经存在！");
            } else {
                alert("添加方案失败！");
            }
        }
    });
}

/**
 * 修改方案
 */
function update_solution(){
    //获得正在执行的方案
    var actionName = $("#solution_default").html();

    //获得旧方案名称
    var oldName = $("#solution_select").val();

    if(actionName == oldName){
        alert("方案正在执行中，无法修改方案名称！");
        return;
    }

    //获得新方案名称
    var solutionName = $("#solutionname2").val();

    //提交方案名称
    myajax({
        url: "/solution/update",
        data: {"solutionname": solutionName, "oldName": oldName},
        success: function(data){
            if(data > 0){
                //
                $("#myModal4").modal('hide');
                var option = $("option[value='" + oldName +"']");
                option.html(solutionName);
                option.attr("value", solutionName);

                //修改执行方案名称
                if($("#solution_default").html() == oldName){
                    $("#solution_default").html(solutionName)
                }
            } else if(data == -1){
                alert("方案名已经存在！");
            } else {
                alert("修改方案失败！");
            }
        }
    });
}

/**
 * 删除方案
 */
function delete_Solution(){
    //获得当前方案名称
    var solutionname = $("#solution_select").val();

    myajax({
        url: "/solution/delete",
        data: {"solutionname": solutionname},
        success: function(data){
            if(data > 0){
                //
                location.reload();
            } else if(data == -1){
                alert("正在执行的方案不能删除！");
            } else  {
                alert("删除方案失败！");
            }
        }
    });
}

/**
 * 执行方案
 */
function exec_Solution(){
    //获得正在执行的方案
    var actionName = $("#solution_default").html();

    //获得方案名称
    var solutionname = $("#solution_select").val();

    //不可重复执行方案
    if(solutionname == actionName){
        alert("不能重复执行方案！");
    }

    //提交方案名称
    myajax({
        type: "POST",
        url: "/solution/exec",
        data: {"solutionname": solutionname},
        success: function(data){
            $("#solution_default").html(solutionname);
        }
    });
}
